import ChiVoxSDK from 'chivox';
import Config from './config';

import $ from 'jquery';
import '../css/chivox-example.css';

let data = [
  {
    refText: "past",
    isWord: true,
    audioUrl: "/static/past.mp3"
  }, {
    refText: "present",
    isWord: true,
    audioUrl: "/static/present.mp3"
  }, {
    refText: "I want to know the past and present of Hong Kong.",
    isWord: false,
    audioUrl: "/static/I-want-to-know-the-past-and-present-of-Hong-Kong.mp3"
  }, {
    refText: "The food price is high at present.",
    isWord: false,
    audioUrl: "/static/The-food-price-is-high-at-present.mp3"
  }
];

let dataIndex = null;

let sdk = new ChiVoxSDK({
    appKey: Config.appKey,
    //mode: ChiVoxSDK.MODE.FLASH,
    sigurl: "/token",
    data: {},

    onInit: (errno, err) => {
        console.info('[ onInit ]:', errno, err);
    },

    onError: (err) => {
        console.info('[ onError ]:', err);
    },

    onBeforePlay: (ele) => {
      dataIndex = $(ele).attr('dataIndex');
      sdk.options.data.audioUrl = data[dataIndex].audioUrl;
    },

    onBeforeRecord: (ele) => {
      dataIndex = $(ele).attr('dataIndex');
      $("#aiPanel .pron").eq(dataIndex).empty();

      var coreType = (data[dataIndex].isWord) ? "en.word.score" : "en.sent.score";
      sdk.setData({
        serverParams: {
          coreType: coreType,
          refText: data[dataIndex].refText,
          rank: 100,
          userId: "chivox tester",
        }
      });
    },

    onScore: (scoreData) => {
      var resultObj = null;

      if (data[dataIndex].isWord) {
        resultObj = new ChiVoxSDK.EnWordScore(scoreData);
        $("#aiPanel .pron").eq(dataIndex).html(resultObj.getOverall());
      } else {
        resultObj = new ChiVoxSDK.EnSentScore(scoreData);
        $("#aiPanel .pron").eq(dataIndex).html(resultObj.getPron());
      }
    },

    onScoreError: (errorType) => {//评分失败的显示 "TIMEOUT", "NO_DATA", ErrorID
      var errorObj = ChiVoxSDK.StatusCode.get(errorType, "cn");
      $("#aiPanel .pron").eq(dataIndex).html(errorObj.feedback);
    }
});

$('#info').text(`ChiVoxSDK ver: ${ChiVoxSDK.VERSION}, mode: ${ChiVoxSDK.mode(sdk.options.mode)}`);
